import dalchemy.prompts
import dalchemy.data
import dalchemy.llms
import dalchemy.parsers
import dalchemy.tasks
import dalchemy.filter
# from typing import Dict
# from dalchemy.data import DalchemyData
# from dalchemy.llms import DalchemyLLM
#
# DATA_REGISTRY: Dict[str, DalchemyData] = {}
# def register_data(name):
#     def register_data_fn(cls):
#         assert issubclass(cls, DalchemyData)
#         if cls in DATA_REGISTRY.values():
#             raise ValueError("Cannot register duplicate data ({})".format(name))
#         DATA_REGISTRY[name] = cls
#         return cls
#
#     return register_data_fn
#
# def build_data(name):
#     return DATA_REGISTRY.get(name, DalchemyData)()
#
# LLM_REGISTRY: Dict[str, DalchemyLLM] = {}
#
#
# def register_llm(name):
#     def register_llm_fn(cls):
#         assert issubclass(cls, DalchemyLLM)
#         if cls in LLM_REGISTRY.values():
#             raise ValueError("Cannot register duplicate llm ({})".format(name))
#         LLM_REGISTRY[name] = cls
#         return cls
#
#     return register_llm_fn
#
# def build_llm(name):
#     return LLM_REGISTRY.get(name, DalchemyLLM)()
# print(LLM_REGISTRY,"LLM_REGISTRY")